This invention relates generally to stroke-based animation, and in particular to ordering strokes in stroke-based animation to achieve temporal coherence between frames.
Non-photorealistic rendering is a subfield of computer graphics that offers additional variety in the looks afforded by computer generated animations. In this field, much time and effort have been spent researching algorithms to produce renderings that could imitate traditional media in a variety of artistic styles. Within non-photorealistic rendering, stroke-based rendering is a popular technique in which an image is created by the sequential drawing of atomic image-space discrete elements (the strokes). Painterly Rendering, for instance, is a well known example of stroke-based rendering where each stroke simulates a brush stroke and is rendered through, e.g., an oil painting media simulation. For example, impressionist paintings can be successfully imitated using this technique.
As opposed to photorealistic rendering, the drawing marks used for depiction in stroke-based rendering (e.g., brush strokes) are typically individually distinguishable in the final result. As a consequence, wherever strokes overlap, the order in which they are drawn visually influences the result. For instance, if Vp and Vq are two overlapping strokes, drawing Vp and then Vq would produce a different image than drawing Vq and then Vp.
Because the ordering of strokes is relevant, artists may wish to enforce some specific ordering constraints. These constraints may be motivated by geometric considerations, such as the occlusion within the underlying scene, or aesthetic considerations, such as layering (e.g., having strokes from a highlight layer being drawn on top of an ambient base layer's strokes). These constraints are generally dynamic in that they may change from frame to frame.
In addition to geometric and aesthetic considerations of the artist, the ordering of strokes in stroke-based animation is also relevant to achieving temporal coherence between frames. For example, if two consecutive frames have a different ordering of strokes, disturbing discrete visual events would result everywhere two overlapping strokes change order from one frame to the next. This can be described as a “popping” effect wherever the strokes change order between two frames. To avoid this effect, it is desirable to maximize the temporal coherence of the ordering of the set of strokes from frame to frame, while still respecting the other constraints for each frame. Indeed, for typical scene and viewing conditions, objects evolve smoothly in space and time, so a reasonable general coherence from frame to frame is expected.
In Meier's seminal paper, Barbara J. Meier, Painterly Rendering for Animation, Proc. of Computer Graphics, 1996, p. 477-484, a set of strokes is built from a three-dimensional scene and animated in time. To respect the geometric occlusions observed in the original scene, strokes are rendered from furthest to closest to the viewpoint, reducing the ordering problem to a simple depth-based sorting. This approach is cheap to compute and naturally respects the occlusion constraint, but it suffers from several drawbacks. For example, it enforces only one predefined constraint—the occlusion—and does not allow for the specification of any other constraint. In addition, it does not identify the pairs of strokes where this constraint is necessary, and as a result enforces it for all pairs of strokes, where another choice could lead to more visually pleasant results. Moreover, this approach is prone to structural artifacts that undesirably reveal the three-dimensional nature of the observed image. Finally, it fully pre-determines the temporal coherence of the algorithm in a way that is often far from optimal. For instance, in the case of a vertical plane viewed from a camera tilting vertically back and forth, the order of the strokes will evolve between a permutation and its reverse, although, since it is a convex surface, the order could remain the same at all time without violating any occlusion constraint.
Techniques are thus desired for ordering the strokes drawn in various frames for stroke-based animation to achieve temporal coherence between the frames, while being consistent with and respecting other geometric and aesthetic concerns for the animation.